我正在使用状态机,当针对大量可能的状态进行测试时,代码变得非常冗长。enumMood{HAPPY,SAD,CALM,SLEEPY,OPTIMISTIC,PENSIVE,ENERGETIC;}有没有办法做到这一点:if(currentMood==(HAPPY|OPTIMISTIC|ENERGETIC){}而不是这个:if(currentMood==HAPPY||currentMood==OPTIMISTIC||currentMood==ENERGETIC){}或者在这种情况下坚持使用整数和标志会更好吗? 最佳答案 也许使用EnumSe
是否有一种内置方法可以使用Myenum.length,之类的方式获取Enum的项目数或者我是否必须自己实现一个函数intsize()硬编码元素的数量? 最佳答案 是的,您可以使用Enum.values()方法获取枚举值数组,然后使用length属性。publicclassMain{enumWORKDAYS{Monday,Tuesday,Wednesday,Thursday,Friday;}publicstaticvoidmain(String[]args){System.out.println(WORKDAYS.values().l
是否有一种内置方法可以使用Myenum.length,之类的方式获取Enum的项目数或者我是否必须自己实现一个函数intsize()硬编码元素的数量? 最佳答案 是的,您可以使用Enum.values()方法获取枚举值数组,然后使用length属性。publicclassMain{enumWORKDAYS{Monday,Tuesday,Wednesday,Thursday,Friday;}publicstaticvoidmain(String[]args){System.out.println(WORKDAYS.values().l
我正在研究java,我创建了一个如下的枚举:publicenummyEnum{india,russian,england,northAmerica}上面的示例在元素名称中使用空格时出现错误(即北美)。有什么建议可以解决上述问题吗? 最佳答案 您不能在标识符中间放置空格。这样做会结束该标识符,并且解析器假定接下来出现的任何内容都是该语句上下文中的有效标记。合法的地方很少(如果有的话)。传统的Java值名称是:INDIA,//OrIndia,RUSSIA,//Russia,NORTH_AMERICA;//NorthAmerica;enu
我正在研究java,我创建了一个如下的枚举:publicenummyEnum{india,russian,england,northAmerica}上面的示例在元素名称中使用空格时出现错误(即北美)。有什么建议可以解决上述问题吗? 最佳答案 您不能在标识符中间放置空格。这样做会结束该标识符,并且解析器假定接下来出现的任何内容都是该语句上下文中的有效标记。合法的地方很少(如果有的话)。传统的Java值名称是:INDIA,//OrIndia,RUSSIA,//Russia,NORTH_AMERICA;//NorthAmerica;enu
publicclassConstant{......publicenumStatus{ERROR,WARNING,NORMAL}......}编译后我得到了一个名为Constant$Status.class的类文件。问题是,我如何访问枚举值。例如,我想获取ERROR状态的字符串表示形式。 最佳答案 您可以在其他地方访问它,例如importpackage.name.Constant;//...Constant.Statusfoo=Constant.Status.ERROR;或者,importpackage.name.Constant;
publicclassConstant{......publicenumStatus{ERROR,WARNING,NORMAL}......}编译后我得到了一个名为Constant$Status.class的类文件。问题是,我如何访问枚举值。例如,我想获取ERROR状态的字符串表示形式。 最佳答案 您可以在其他地方访问它,例如importpackage.name.Constant;//...Constant.Statusfoo=Constant.Status.ERROR;或者,importpackage.name.Constant;
编译器禁止访问枚举构造函数中的静态字段。下面的源代码有效,它使用了一个静态字段:publicenumTrickyEnum{TrickyEnum1,TrickyEnum2;staticintcount;TrickyEnum(){incrementCount();}privatestaticvoidincrementCount(){count++;}publicstaticvoidmain(String...args){System.out.println("Count:"+count);}}输出:Count:2.但下面的代码虽然差别很小,但不起作用:publicenumTrickyEnu
编译器禁止访问枚举构造函数中的静态字段。下面的源代码有效,它使用了一个静态字段:publicenumTrickyEnum{TrickyEnum1,TrickyEnum2;staticintcount;TrickyEnum(){incrementCount();}privatestaticvoidincrementCount(){count++;}publicstaticvoidmain(String...args){System.out.println("Count:"+count);}}输出:Count:2.但下面的代码虽然差别很小,但不起作用:publicenumTrickyEnu
Java中枚举中允许的最大元素数是多少?我想找出switch语句中的最大case数。由于switch中允许的最大原始类型是int,因此我们有从-2,147,483,648到2,147,483,647的情况和一种默认情况。但是也允许使用枚举...所以问题.. 最佳答案 来自classfileformatspec:Theper-classorper-interfaceconstantpoolislimitedto65535entriesbythe16-bitconstant_pool_countfieldoftheClassFilest